#!/bin/bash

# 根据提供的物种名或属名，获得界门纲目科属的信息

# [TODO] 未经验证。检查是否安装了taxonkit
if ! command -v taxonkit &> /dev/null; then
    echo "taxonkit 未安装，请先安装。"
    exit 1
fi

# 初始化conda
source ~/miniconda3/etc/profile.d/conda.sh
conda activate student

# 检查是否提供了文件名作为参数
if [[ $# -lt 1 ]]; then
    echo "用法: $0 <Genus.txt 文件路径> # 要注意每行结果可能有多条，要人工筛查"
    exit 1
fi

input_file="$1"

# 确保提供的文件存在
if [[ ! -f "$input_file" ]]; then
    echo "错误: $input_file 文件不存在。"
    exit 1
fi

# 逐行读取文件 
# [TODO] 多线程，还有消除一行多个结果的问题
while IFS= read -r genus; do
    # 使用 taxonkit 获得界门纲目科属的信息
    echo "$genus" | taxonkit name2taxid | cut -f 2 | taxonkit lineage | taxonkit reformat  | cut -f 3
done < "$input_file"
